home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_100 / 199_01 / ged.doc < prev    next >
Text File  |  1987-12-15  |  28KB  |  556 lines

  1.                                  GED 2.00
  2.  
  3. I. Introduction ( goto Changes and Additions if you already use ged )
  4.  
  5. Ged, a.k.a. "go edit", is an adaptation of J.W.Haefner's MS-DOS QED text
  6. editor to COMPAQ/IBM-PC hardware, making extensive use of DeSmet C's pcio
  7. video routines.
  8.  
  9. Since this is only an adaptation I have left in all references to previous
  10. authorship.  I have also retained most of Mr. Haefner's documentation -
  11. as much of it still applies to Ged.
  12.  
  13.                                  Why GED?
  14.  
  15. Initially my goal was to produce an editor to replace what I've used for
  16. almost two years, ( Turbo Pascal's editor ), and to one day port it to a
  17. UNIX/XENIX environment.  At this point in time I feel I've made some good
  18. progress towards that end and have decided to pass on the fruits of my
  19. research.
  20.  
  21. I started this project back in January '86, and spent a good deal of     
  22. time trying to make GED work using ansi.sys.  It eventually did run, but  
  23. not much faster than what I can do in BBx, Business Basic.  Ansi.sys  
  24. should be used sparingly.  Around Spring '86, I started over again, this
  25. time playing with interrupts and feverishly re-reading my Norton's. It  
  26. then dawned on me - "why re-invent the wheel", and I opted to use the  
  27. video routines that were supplied with DeSmet C's compiler package.  
  28.  
  29. ( My reluctance to using pcio was motivated by not wanting to learn assembly
  30. language - there's no way around it.  At least with gedio.a you've got some
  31. good working examples. )
  32.  
  33.  
  34.  
  35. II. Changes and Additions
  36.  
  37. Function Key Definitions:
  38. ─────────────────────────
  39. F1  = help menu
  40. F2  = update time
  41. F3  = move cursor left one word       to change
  42. F4  = move cursor right one word          ""
  43. F5  = save the current file and resume editing
  44. F6  = execute ls                see getenv()
  45. F7  = execute more                ditto
  46. F8  = execute grep                ditto
  47. F9  = turn on graphics editor - display IBM extended ASCII tables
  48. F10 = reset run-time variables and options.
  49.  
  50.  
  51. Cursor Control Keys:
  52. ────────────────────
  53. Home      = cursor to left edge of screen
  54. End       = cursor to end of line
  55. PgUp      = move cursor up to beginning of file
  56.               text scrolls down
  57. PgDn      = move cursor down to end of file
  58.               text scrolls up
  59. Del       = delete character under cursor
  60.               if end of line then pull from line below
  61. Caps      = displays caps lock status
  62. Lock
  63. Ins       = turns overtype/insert on/off ( ged is in insert mode normally )
  64. Arrows    = as expected
  65. Alt       = if IBM chars table on - then get character from 10-key pad.
  66. GreyMinus = move cursor word left
  67. GreyPlus  = move cursor word right
  68.  
  69.  
  70. Version:
  71. ────────
  72. v2.00   Converting Ged to MicroSoft 5.0 and Qic C.
  73.         Added Gedio.asm, ged low level screen routines which compile
  74.         under MASM.
  75.  
  76. v1.15   Added IBM extended graphics chars( box parts, etc. ).
  77.         Added grey-minus and grey-plus key detection.
  78.  
  79. v1.11   Added getenv() - DeSmet 3.0 specific.
  80.         Cleaned up screen I/O, it all begins with scr_, except for putstr.
  81.  
  82.         All scr_ functions are located in gedio.a
  83.         All scr_ co-ordinates are set for ( col, row ).
  84.         All interrupt coded functions are in ged11.c.
  85.  
  86.         Added overtype mode and capslock indicator.
  87.         Speeded up cursor movement.
  88.         Some additional fixes as suggested by Andrew Binstock.
  89.  
  90. v1.10   Annoying delete to end of line problem cleaned up.
  91.         Delete routine did not have actual cursor location.
  92.         Only showed up if deleting at postion greater than
  93.         screen width.
  94.  
  95.         Changed inject function to writ_txb - easier to relate to.
  96.         Cleaned up putline and rewrite functions.
  97.         Added execute function to run other people's programs.
  98.  
  99.         Added J.W.Haefner's reform routine.  This is for letter
  100.         writing and not programming.  Reset right margin using F10.
  101.         ( Routine still needs some work )
  102.  
  103. v1.05   Added printer error recovery routine.  Printer routine covers
  104.         trying to write to non-existent printer, meaning - you forgot
  105.         to plug it in.  Further success of routine appears to be somewhat
  106.         printer dependent.  You plugged the printer in then turned it off.
  107.  
  108.         Added undo routine from N. Gilbert's 'e' 4.8 CP/M editor.
  109.       ( Undo replays the last 100 line changes, including deletes,
  110.         moves, etc.  It's very handy. )
  111.  
  112.  
  113. New Functions:
  114. ──────────────
  115.  
  116. 1. undo()     Undo will undo the last change(s) - up to one hundred.
  117.               To use, enter ^_.
  118.  
  119. 2. reform()   Use to reformat blocks of text.
  120.               Current Default is 72 characters.  To change, use F10 Key to
  121.               call file Context Menu.  To use, place cursor at beginning of
  122.               text block and enter ^QR.  Will work with undo.  You must
  123.               move the cursor off the line before reforming.
  124.  
  125. 3. execute()  Must use elink.bat and elink.dat.  See function key assignments
  126.               in ged.c, and execute() and show_fkeys() in ged1.c.  Execute
  127.               will clean up after itself depending on how the last argument
  128.               is set.
  129.  
  130. 4. getenv()   It is now possible to locate ls.exe and more.exe using environ-
  131.               mental variables which you can set in your autoexec.bat file.
  132.  
  133.               SET LS=c:\exe\ls.exe
  134.               SET MORE=c:\exe\more.exe
  135.               SET GREP=c:\exe\grep.exe
  136.  
  137.             ( I store my more useful executables in a subdirectory named \exe.
  138.               You must set LS, or whatever you call it, in the function key
  139.               assignment section of ged.c as well.  See ged.c for examples. )
  140.  
  141.               Make sure to set ansi.sys in your config.sys file as ls and
  142.               more use the reverse display drivers.
  143.  
  144. Books:
  145. ──────
  146.    I recommend the following books for the serious enthusiast:
  147.  
  148.   "Crafting 'C' Tools for the IBM PCs", Joe Campbell, Prentice-Hall.
  149.  
  150.   "Advanced MS-DOS", Ray Duncan, MicroSoft Press.
  151.  
  152.  
  153. Bugs:
  154. ─────
  155.   As of GED 1.10 I became aware of a potentially troublesome bug.
  156.   Make sure that readall in ged.c is always set to YES - else you may end
  157.   up zapping some random disk sectors. ( Especially if attempting to save
  158.   a file before completely reading it in. )
  159.  
  160.   There's a bug in displaying tabs properly - I wish someone would fix
  161.   it.  I don't use tabs.
  162.  
  163.   Printer error routines could work better.
  164.  
  165.  
  166. Other:
  167. ──────
  168.   Also, please report anything you feel is a bug or that needs improvement.
  169.   Fixes and constructive criticism are welcomed.
  170.  
  171.  
  172. ╓─────────────────────────────────────────────────────────────────────────────╖
  173. ║ Graphics:                                                                   ║
  174. ╟─────────────────────────────────────────────────────────────────────────────╢
  175. ║ What won't work.  The following Ascii characters will cause you problems.   ║
  176. ║                                                                             ║
  177. ║ 009 or '\t'.  I don't use tabs, but for those those who do, '\t' makes for  ║
  178. ║               some funny looking displays if not converted to blanks.       ║
  179. ║                                                                             ║
  180. ║ 010 or '\n'.  Will do as expected.  Ged is still a text editor.             ║
  181. ║                                                                             ║
  182. ║ 026 or ^Z.    Stops your read dead in it's tracks.                          ║
  183. ║                                                                             ║
  184. ║ Of the three, only ^Z is useful as graphics character - Paul Mace may argue ║
  185. ║ otherwise.  If you really need to use these forbidden characters it's best  ║
  186. ║ to write them rather than store them.                                       ║
  187. ║                                                                             ║
  188. ║ What will work.  F9 turns on the extended graphics mode and puts up the     ║
  189. ║ first table.  Alt + the number of the char entered with the 10-key pad will ║
  190. ║ write the character at the cursor location.  Control L, ^L, will repeat it  ║
  191. ║ till